#pragma once
#ifndef __ENTIDAD_H__
#define __ENTIDAD_H__

#include <ogre.h>
#include <TerrainDecal.h>
using namespace Ogre;

class Entidad
{
public:
	Entidad(void);
	~Entidad(void);
 virtual void Init(SceneManager* sceneManager, String nombre, String modelo,TerrainDecal* terreno);

        // Gets
        Vector3 getPosition(void);
        Quaternion getOrientation(void);
        Vector3 getScale(void);
        Real getHeight(void);       
        float getVelocidad();
		Entity* getEntidad();
        // Sets
		void setVelocidad(float speed);
        void setPosition(Vector3 position);
        void setPosition(Real x, Real y, Real z);
		void setTranslate(Real x, Real y, Real z);
        void setOrientation(Quaternion orientation);
        //void setOrientation(Real w, Real x, Real y, Real z);
        void setScale(Vector3 scale);
		void setMaterialName(String name);
        //void setScale(Real sx, Real sy, Real sz);
       

protected:
        void Inicializar(SceneManager* sceneManager,  String nombre, String modelo, TerrainDecal* terreno);

        SceneManager* mSceneMgr;
        TerrainDecal* mTerreno;
		SceneNode* mScnNodo;
        Entity* mEntidad;
        float mVelocidad;     
};

#endif

